package com.caigou.modules.rank.network.api

import com.caigou.comm.base.bean.HttpResult
import com.caigou.modules.rank.bean.*
import kotlinx.coroutines.flow.Flow
import okhttp3.RequestBody
import retrofit2.http.*

/**
 * @author #Suyghur.
 * Created on 2021/11/03
 */
interface HttpRankApiService {

    @GET("/api/personal/rank/fans/list")
    fun getFansRank(@Query("userId") userId: String): Flow<HttpResult<FansRankBean>>

    @GET("/api/personal/rank/fans/list")
    fun getFansRank(@Query("date") date: String, @Query("userId") userId: String): Flow<HttpResult<FansRankBean>>

    @GET("/api/personal/rank/growth/value/list")
    fun getLevelRank(@Query("userId") userId: String): Flow<HttpResult<LevelRankBean>>

    @GET("/api/personal/rank/growth/value/list")
    fun getLevelRank(@Query("date") date: String, @Query("userId") userId: String): Flow<HttpResult<LevelRankBean>>

    @GET("/api/personal/rank/charm/value/list")
    fun getCharmRank(@Query("userId") userId: String): Flow<HttpResult<CharmRankBean>>

    @GET("/api/personal/rank/charm/value/list")
    fun getCharmRank(@Query("date") date: String, @Query("userId") userId: String): Flow<HttpResult<CharmRankBean>>

    @GET("/api/personal/rank/contribution/value/list")
    fun getContributionRank(@Query("userId") userId: String): Flow<HttpResult<ContributionRankBean>>

    @GET("/api/personal/rank/contribution/value/list")
    fun getContributionRank(@Query("date") date: String, @Query("userId") userId: String): Flow<HttpResult<ContributionRankBean>>

    @GET("/api/personal/rank/score/list")
    fun getMasterRank(@Query("userId") userId: String): Flow<HttpResult<MasterRankBean>>

    @GET("/api/personal/rank/score/list")
    fun getMasterRank(@Query("date") date: String, @Query("userId") userId: String): Flow<HttpResult<MasterRankBean>>
}